/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package rpt.bd.cenario;

import java.util.Vector;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Roberto
 */
public class CModeloGrade extends DefaultTableModel {

    protected int fIndiceColunaOrdenada = -1;
    protected boolean fOrdenacaoAscendente = true;

    public CModeloGrade() {
        super();
    }

    public CModeloGrade(
            final Vector fResultSet,
            final Vector fTitulos) {
        super(fResultSet,fTitulos);
    }

    public void addRow(Vector rowData) {
        int vRowCount = getRowCount();
        insertRow(vRowCount, rowData);
        this.fireTableDataChanged();
    }

    @Override
    public boolean isCellEditable(int row, int column) {
         return false;
    }

    @Override
     public Class getColumnClass(int column) {
        return Object.class;
     }
/*
    public void addColumn(Object columnName) {
        columnIdentifiers.addElement(columnName);
    }
*/
    @Override
     public Object getValueAt(int row, int column) {
        CRegistroBd vRegistroBd = (CRegistroBd)dataVector.get(row);
        if (vRegistroBd == null)
            return null;
        else {
            //CConjuntoDadosBd cd = (CConjuntoDadosBd)dataVector;
            //CConjuntoDadosBd cd = fCenarioBd.getConjuntoDadosBd();
            CCampoRegistroBd c = vRegistroBd.getCampoRegistroBd(column);
            //CEstruturaCampoRegistroBd e = c.getEstruturaCampoRegistroBd();
            if (c instanceof CCampoRegistroBdLookup) {
                return ((CCampoRegistroBdLookup)c).getDescricaoLookup(); // getValorCampoBdStr();
            }
            else {
                return c.getValorCampoBd(); // getValorCampoBdStr();
            }
        }
     }

    @Override
     public void setValueAt(Object value, int row, int column) {
/*
        CRegistroBd vRegistroBd = (CRegistroBd)dataVector.get(row);
        if (vRegistroBd != null)
            return (CCampoRegistroBd)vRegistroBd.getCampoCabecalho(column);
 */
        fireTableCellUpdated(row, column);
     }

    @Override
     public int getRowCount() {
        return dataVector.size();
     }

    @Override
    public int getColumnCount() {
        return columnIdentifiers.size();
    }

     public boolean getOrdenacaoAscendente() {
         return fOrdenacaoAscendente;
     }

     public void setOrdenacaoAscendente(boolean aOrdenacaoAscendente) {
         fOrdenacaoAscendente = aOrdenacaoAscendente;
     }

     public int getIndiceColunaOrdenada() {
         return fIndiceColunaOrdenada;
     }

     public void setIndiceColunaOrdenada(int aIndiceColunaOrdenada) {
         fIndiceColunaOrdenada = aIndiceColunaOrdenada;
     }

     /*
     public boolean hasEmptyRow() {
         if (fConjuntoDadosBd.size() == 0) return false;
         return false;
     }

     public void addEmptyRow() {
         CRegistroBd x = new CRegistroBd(null);
         fConjuntoDadosBd.add(x);
         fireTableRowsInserted(
            fConjuntoDadosBd.size() - 1,
            fConjuntoDadosBd.size() - 1);
    }
*/
}
